<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>new Function</title>
</head>
<body>
<script>
    // let func = new Function('a,b','console.log(a+b)')
    // func(1,2)


    let count = 10

    function foo() {
        let count = 0

        //new Function()没有闭包 会访问全局位置的变量
        //没有闭包的本质是因为使用这种方式创建出来的函数对象内部没有[[environment]]隐藏属性
        return new Function('console.log(++count)')
    }

    let func = foo()
    func()
    func()


    /*new Function()就不该去访问外部的变量 一般访问的变量要么是内部定义的，要么是通过函数参数传递的*/
    let fun1 = new Function('a,b', 'console.log(a+b)')

    fun1(1, 2)


</script>
</body>
</html>